package com.hzw.saas.api.product;

import com.hzw.saas.api.product.dto.PaymentOnlineDto;

/**
 * <p>
 * 线上支付表 服务类
 * </p>
 *
 * @author zzl
 * @since 2021-01-21
 */
public interface IPaymentOnlineService {

    /**
     * 获取订单支付信息
     * @param payId 支付ID
     * @return 支付信息
     */
    PaymentOnlineDto get(String payId);

    /**
     * 根据支付号获取支付信息
     * @param payNo 支付号
     * @return 支付信息
     */
    PaymentOnlineDto getByPayNo(String payNo);

    /**
     * 根据订单号获取支付信息
     * @param orderId 订单号
     * @return 支付信息列表
     */
    PaymentOnlineDto getByOrder(String orderId);

    /**
     * 增加订单支付信息
     * @param paymentOnlineDto 支付信息
     * @return 支付信息，包含生成的支付ID
     */
    PaymentOnlineDto add(PaymentOnlineDto paymentOnlineDto);

    /**
     * 更新订单支付信息
     * @param paymentOnlineDto 支付信息，无需更新字段请保留null
     * @return 更新结果，成功true/失败false
     */
    boolean update(PaymentOnlineDto paymentOnlineDto);

    /**
     * 删除订单支付信息
     * @param payId 支付ID
     * @return 被删除的支付信息
     */
    PaymentOnlineDto delete(String payId);

    /**
     * 根据支付号删除订单支付信息
     * @param payNo 支付号
     * @return 被删除的支付信息
     */
    PaymentOnlineDto deleteByPayNo(String payNo);

    /**
     * 根据订单号删除支付信息
     * @param orderId 订单号
     * @return 被删除的支付信息列表
     */
    PaymentOnlineDto deleteByOrder(String orderId);

}
